home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / glass / glass.lha / GLASS / tmc / alutest.c < prev    next >
C/C++ Source or Header  |  1990-11-06  |  2KB  |  78 lines

  1. /* 
  2.    Copyright (C) 1990 C van Reewijk, email: dutentb.uucp!reeuwijk
  3.  
  4. This file is part of GLASS.
  5.  
  6. GLASS is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GLASS is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GLASS; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. /* file: alutest.c
  21.  
  22.    Test of 'alu' modules: read a file for a given datastructure
  23.    and write it out again in pretty-printed format.
  24.  */
  25.  
  26. #include <stdio.h>
  27. #include <tmc.h>
  28.  
  29. #ifdef apollo
  30. #ifdef __STDC__
  31. #undef __STDC__
  32. #endif
  33. #endif
  34. #if defined( __STDC__ ) && __STDC__>0
  35. #include <stdlib.h>
  36. #endif
  37. #ifdef hpux
  38. extern void exit();
  39. #endif
  40.  
  41. #include "alucode.h"
  42.  
  43. int main()
  44. {
  45.     toplevel_list ds;
  46.     toplevel_list dscopy;
  47.  
  48.     if( fscan_toplevel_list( stdin, &ds ) ){
  49.     fprintf( stderr, "Read error: %s\n", tmerrmsg );
  50.     }
  51.     dscopy = rdup_toplevel_list( ds );
  52.     rfre_toplevel_list( dscopy );    /* put something in caches */
  53.     dscopy = rdup_toplevel_list( ds );
  54.     if( cmp_toplevel_list( ds, dscopy ) != 0 ){
  55.     fprintf( stderr, "Strange, copy not equal to original\n" );
  56.     exit( 1 );
  57.     }
  58.     ins_toplevel_list( ds, (unsigned int) 0, rdup_toplevel( ds->arr[0] ) );
  59.     if( cmp_toplevel_list( ds, dscopy ) == 0 ){
  60.     fprintf( stderr, "Strange, insertion does not change comparison\n" );
  61.     exit( 1 );
  62.     }
  63.     del_toplevel_list( ds, (unsigned int) 1 );
  64.     if( cmp_toplevel_list( ds, dscopy ) != 0 ){
  65.     fprintf( stderr, "Strange, deletion does not restore old ds\n" );
  66.     exit( 1 );
  67.     }
  68.     ds = concat_toplevel_list( ds, dscopy );
  69.     fprint_toplevel_list( stdout, ds );
  70.     setprint( stdout, 4, 80 );
  71.     print_toplevel_list( ds );
  72.     rfre_toplevel_list( ds );
  73.     flush_ds();
  74.     stat_ds( stderr );
  75.     exit( 0 );
  76.     return( 0 );
  77. }
  78.